查看原文
其他

硬核!一文了解大型语言模型的上下文学习能力(ICL),非常详细

ShuYini AINLPer 2023-07-10
点击上方AINLPer,设为星标
更多干货,第一时间送达

引言

 在这个大模型满天飞的时代里,相信大家对大型语言模型的In-Context Learning(ICL)能力并不陌生。基于该能力,我们无需对模型权重做任何改动,它就能根据输入的相关应用场景(翻译,算术,文本纠错)的几个promp 样例,解决对应场景下的新问题。最近的很多工作都在研究大型语言模型的上下文学习(ICL )能力,希望能解释为什么模型会出现ICL能力,以及影响ICL能力的因素有哪些。「在ICL研究过程中也出现一个特别有意思的讨论,即有研究发现模型在应用阶段根据上下文内容可以覆盖其之前的先验语义,如果证实那么就可以认为模型具有了自我进化的能力」。那么接下来就给大家分享一下近年对ICL的主要研究成果,带你一文了解ICL。本文参考:https://thegradient.pub/in-context-learning-in-context/

背景介绍

 In-Context Learning(ICL)的概念最初来自GPT-3的论文,ICL之所以如此有魅力,其主要原因就是,无需微调模型权重固定不变,只需要给预训练模型展示一些输入-输出示例,就能学会做一些全新的事情。正如这篇斯坦福大学博客(http://ai.stanford.edu/blog/understanding-incontext/)所指出的,与在更多标签数据上训练的模型相比,ICL在许多NLP基准上都具有很强的竞争力。

 In-Context Learning 与Prompt关系紧密,如果你需要让ChatGPT按照主题对文章进行分类,你要做的就是给它几个正确分类的样例,它就能依据你的样例进行分类给你预期的结果。为此最近也有研究开始探索操纵prompt 来让LLMs更加适合应用场景,例如Zhou等人文章Teaching Algorithmic Reasoning via In-Context Learning

 目前最强模型GPT-4,在其能力介绍中就给出了了要求模型回答新问题时的问题、答案和答案解释的示例。如下图所示,为模型提供了AP艺术史考试多项选择部分的示例问题、答案和解释。最后,提示仅提供一个问题,并要求模型给出其(多项选择)答案和解释。

 在GPT-3的论文中有这么一句话:「在无监督的预训练中,语言模型得出了一种泛化和模式识别的能力。应用这些能力模型可以快速适应或识别所需要做的任务。我们使用“In-Context Learning(ICL)”一词来描述这个过程,它发生在每个序列的正向传递中」。然而,ICL背后的机制是什么呢?了解LLMs为什么能够“无需进一步微调”就能快速适应新任务——目前仍然是一个有争议的主题,接下来将为大家尝试解释这一能力。

早期ICL能力的研究

 说早期其实也就是这两年,因为GPT-3也就是2020年的事情。对于大型语言模型ICL能力的深入研究,最开始是由Brown等人进行,他们注意到了GPT-3的ICL能力,发现随着模型权重参数的增大,模型对上下文信息的应用也就越充分,ICL能力也有额外的增加。虽然GPT-3显示的ICL能力令人印象深刻,但值得注意的是,GPT-3在Winograd数据集上没有表现出明显的ICL能力,并且ICL在常识推理任务上的效果也参差不齐。 在对于ICL能力的早期研究中,斯坦福Xie等人的论文“An Explanation of In-context Learning as Implicit Bayesian Inference”也试图研究ICL是如何出现在预训练过程中的,并提出了一个数学框架进行解释,在这个框架中,LM使用上下文学习提示来“locate”先前学习的concept来完成上下文学习任务。如下图所示:LM使用训练示例在内部确定任务是情感分析(左)还是主题分类(右),并将相同的映射应用到测试输入。这里提到的「concept可以将其视为包含各种统计信息的潜在变量」。例如,“新闻主题”concept描述了词的分布(新闻及其主题)、格式(新闻文章的写作方式)、新闻与主题之间的关系以及词之间的其他语义和句法关系。

 “locate”学习能力的过程可以看作是对提示concept的贝叶斯推理,提示中的每个例子都有一个提示concept。如果模型能够推断出提示concept,那么它就可以用来对测试实例进行正确的预测。在数学上,提示符为模型(p)提供了依据,即可以写作。如果集中在提示concept上,则可以认为模型已经有效地从提示中“学习”到了这个concept。模型输出可以表示为如下公式:如果p(concept|prompt)用更多的例子集中在提示概念上,LM通过边缘化的方式“选择”提示concept——这等同于执行贝叶斯推理。

 接下来,作者详细描述了他们的理论设置——预训练分布是一个混合HMM (MoHMM),用表示潜在概念中的一个concept,它定义了词汇表中可见Token的分布。他们通过从先验中抽取concept来生成文档,并在给定concept的情况下对文档进行抽样——给定concept的文档(长度为 T 的序列)的概率由HMM定义,决定HMM 的转移概率矩阵隐藏状态。他们的上下文预测器,贝叶斯预测器,根据提示分布给出的提示,在预训练分布上输出了最大可能的预测。最终实验证明了「当预训练分布是HMM的混合分布时,上下文学习就会发生」 另外一项工作是Min等发布的“Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?”,本文主要分析了prompt的哪些方面会影响模型在下游任务中的表现,具体包括:输入标签映射、输入文本的分布、标签空间、格式。在文中作者发现,在一系列分类和多选择任务上,模型采用随机标签和Gold标签示例能够实现类似的改进,并都要优于Few-shot极限版本。除此之外,标签空间的调整对于模型性能有显著的提示,格式的对于模型效果的改进同样重要,

 总之,对于ICL而言,最终重要的三件事是输入分布(ICL提示样例中的底层分布输入来自于此)、输出空间(任务中的输出类或答案选择集)以及提示格式。斯坦福大学人工智能实验室的一篇博客文章(http://ai.stanford.edu/blog/understanding-incontext/)将Min等人的研究成果与Xie等人提出的假设联系起来:「由于LM不依赖于提示中的输入-输出对应关系,它们可能已经在预训练期间接触到这种对应关系的概念,然后ICL就会利用这种对应关系」。提示的其它样例可以被视为提供证据,使模型能够定位它已经学习的concept(Xie将其定义为包含文档级统计信息的潜在变量)。

Induction heads&梯度下降

 在对Transformer进行研究的时候,Anthropic的研究人发现了一种特殊的注意力头,被称为「induction heads」,它是由一对来自不同网络层的注意力头组成,该结构会在上下文学习中起到作用。简而言之,induction heads在其上下文中搜索模型当前正在处理标记的先前示例。如果它们在上下文中找到当前的标记,它们会查看下面的标记并复制它——这允许它们重复以前的标记序列以形成新的补全。从本质上讲,这个想法类似于复制粘贴模型以前的输出。例如,“哈利”和“波特”可以通过查看“哈利波特”之前的输出来完成。 关于induction heads的更多细节,可以参考https://transformer-circuits.pub/2022/in-context-learning-and-induction-heads/index.html,它介绍了 Anthropic 用于理解Transformer模型的框架。就我们而言,结果是induction heads出现在Transformer模型中,增强了Transformer模型的ICL能力。由于研究人员可以对Transformer这些组件的工作方式进行逆向工程,因此他们为更全面地了解ICL的工作方式和原因提供了一条很有前途的途径。

 最近的工作根据梯度下降的角度来对ICL进行了分析,即在文字学习过程中促使ICL实施了某种优化过程。在“What Learning Algorithm is In-Context Learning”一文中,Akyürek 等人将线性回归看作toy问题,为基于Transformer的ICL确实隐含地实现了标准学习算法的假设提供了依据。“Transformers learn in-context by gradient descent”正是其标题所暗示的主张,作者假设 transformer 前向传递“通过基于梯度的优化从其上下文数据构建的隐式自回归内部损失”来实现 ICL。

近期对ICL的研究

 最近3月份的两篇论文探讨了ICL的特性,这些特性为ICL的“学习”方面提供了一些启示,并提出了一些问题。 首先,“The Learnability of In-Context Learning”提出了首个基于PAC的上下文可学习框架。通过对模型的预训练样例数量和下游任务样例数量的假设,作者指出当预训练分布是潜在混合任务时,这些任务可以通过ICL进行有效地学习。这篇论文的主要结论是:「这项工作进一步激发了ICL定位语言模型已经学习的概念的直觉」 然后,“Large Language Models Do In-Context Learning Differently”「进一步研究了ICL的哪些方面会影响性能,进一步阐明“学习”是否真的发生在ICL中」。“Rethinking the Role of Demonstrations”表明,呈现具有随机映射而不是正确输入输出值的模型不会对性能产生实质性影响,这表明语言模型主要依赖于语义先验知识,同时遵循上下文示例的格式。同时,关于 ICL 和梯度下降的研究表明,简单设置中的变换器从上下文示例中学习输入标签映射。在本文,Wei等人研究了语义先验和输入标签映射如何在三种情况下相互作用:1、常规 ICL:语义先验和输入标签映射都可以让模型成功执行ICL。

2、翻转标签ICL:示例中的所有标签都被翻转,在语义先验知识和输入标签示例之间产生分歧。在带有真实标签的评估集上的性能超过50%表明模型未能覆盖语义先验。低于50%的性能表明模型成功地从(不正确的)输入标签映射中学习,覆盖了它的先验。

3、语义无关标签ICL(SUL-ICL):标签语义上与任务无关(例如,“foo/bar”被用作情感分类任务的标签,而不是“positive/negative”)。此设置中,模型只能使用输入标签映射执行ICL。

 从本文主要结论:LLM展示了一种超越其语义先验并从输入标签映射中学习的新兴能力。换句话说,如果一个足够大的模型被要求在带有翻转标签的示例中进行上下文学习,那么在其示例具有正确标签的评估集上的性能会下降(低于50%)。 在 SUL-ICL 设置中,作者展示了从小型模型到大型模型的类似能力转变。下图显示了常规 ICL 和 SUL-ICL 之间的性能差异,其中要求模型使用标签在语义上与任务无关的示例进行上下文学习。 虽然增加模型大小可以提高常规ICL和SUL-ICL的性能,但从常规ICL到SUL-ICL的性能下降可以发现一个有趣的现象。「小型模型在常规ICL和SUL-ICL性能下降明显,这表明这些模型的语义先验依赖于标签的实际名称,阻止它们从具有语义无关标签的示例中学习。另一方面,大型模型的性能下降要小得多;这表明他们仍然可以在没有语义先验的情况下在上下文中学习输入标签映射」

ICL未来方向

 有专家认为目前的模型学习必须是梯度更新,在测试时发生的任何事情都是在训练前发生的“学习”的结果,这与“上下文学习主要是为了更好地定位(激活)LM 在训练过程中学到的内在能力”有关,

 但是目前,许多工作似乎质疑了ICL不涉及学习并且仅定位预训练模型中存在的概念。大型模型似乎比小型模型从上下文提示中“学习”更多。但是将ICL与梯度下降联系起来的研究结果表明,有理由相信当小模型也执行ICL时可能会发生学习。「最近发现更大的语言模型可以覆盖它们的先验语义」,并且也许可以“学习”某些东西,这似乎指向了这样一个结论:“语言模型是否真的在上下文中学习了一些东西,而不是仅仅定位从预训练中学到的概念?”

「总之,对于模型是否能够在上下文中“学习”新的知识并并覆盖其先验语义是存在争议的」。未来对模型ICL能力的理解将会继续发展,因为我们希望能够更好的理解ICL中“学习”何时以及如何发生。

推荐阅读

[1]ICLR2023 | 上下文学习的可解释性,及实验论证

[2]三种Prompt方法大幅提升大模型LLMs推理能力

[3]中文命名实体识别(NER)数据集大盘点(全)

[4]大型语言模型落地对话系统,该从哪些方面入手?

[5]中文通用开源指令数据集(COIG):数据多样,质量高

[6]MPT-7B:可商用的开源模型,效果堪比LLaMA-7B

点击下方链接🔗关注我们

「资料整理不易,点个再看吧」

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存